// pages/education/index.js
import AI from '../../utils/ai';
import DB from '../../utils/db';

Page({

  /**
   * 页面的初始数据
   */
  data: {
    mode: '',
    // dateVisible: false,
    entry:'2018-01-01', // 支持时间戳传入
    resign: '2018-01-01',// 支持时间戳传入
    // 指定选择区间起始值
    start: '1950-01-01 00:00:00',
    end: '2030-09-09 12:12:12',
    defaultVal: false,
    confirmBtn: { content: '确定', variant: 'base' },
    dialogKey: '',
    showConfirm: false,
    showWarnConfirm: false,
    showLightConfirm: false,
    form: {
      companyText: '',
      postText: '',
      entryText:'',
      resignText:'',
      workContent:''
    },
  },

  showDialog(e) {
    const { key } = e.currentTarget.dataset;
    this.setData({ [key]: true, dialogKey: key });
  },

  closeDialog() {
    const { dialogKey } = this.data;
    this.setData({ [dialogKey]: false });
    console.log("确认删除")
  },


  showPicker(e) {
    const { mode } = e.currentTarget.dataset;
    this.setData({
      mode,
      [`${mode}Visible`]: true,
    });
  },

  hidePicker() {
    const { mode } = this.data;
    this.setData({
      [`${mode}Visible`]: false,
    });
  },
  onConfirm(e) {
    const { value } = e.detail;
    const { mode } = this.data;

    console.log('confirm', value);

    this.setData({
      [mode]: value,
      [`form.${mode}Text`]: value,
    });

    this.hidePicker();
  },

  onColumnChange(e) {
    console.log('pick', e.detail.value);
  },

  onCompanyTextInput(e){
    this.setData({
      'form.companyText': e.detail.value
    })
  },

  onPostTextInput(e){
    this.setData({
      'form.postText': e.detail.value
    })
  },

  onWorkContentInput(e){
    this.setData({
      'form.workContent': e.detail.value
    })
  },

  onVisibleChange(e) {
    this.setData({
      visible: e.detail.visible,
    });
  },
  onVisible(e) {
    this.setData({
      visible: false,
    });
  },
  onCopy(e){
    wx.showToast({
      title: '转换成功',
      icon: 'success'
    })
    this.setData({
      'form.workContent': this.data.text,
      visible: false,
    });
  },

  onAi(){
    wx.showLoading({
      title: 'AI优化中\n预计2-4分钟',// 这里设置提示词
      mask: true // 显示透明蒙层
    });
    let userInput = `帮我生成一篇通用工作内容`
    if(this.data.form.workContent !== ""){
      userInput = this.data.form.workContent
    }else if(this.data.form.postText !== ""){
      userInput = `帮我生成一篇${this.data.form.postText}工作内容`
    }

    const systemPrompt =`# 专业职业经理人智能体提示词"+
      ## C - Context (背景信息)
      作为一名专业的职业经理顾问，你具备丰富的行业经验和专业知识。你的任务是帮助职场人士分析他们的工作内容，从而提取关键工作信息。
      ## O - Objective (明确目标)
      - 帮助用户识别关键的工作内容和职责。
      ## S - Style (希望的风格)
      - 使用正式、专业的语言风格。
      - 表述简洁明了，逻辑清晰。
      - 在描述职责和任务时，优先使用动宾短语。
      ## T - Tone (语调)
      - 保持客观中立的语调。
      - 避免主观臆断或情感色彩的渲染。
      - 专注于事实和数据，展现专业素养。
      ## A - Audience (目标受众)
      - 各类职场人士，包括初级员工至高级管理人员。
      ## R - Response (回应类型)
      你的回应应采用以下结构化格式呈现：
      - - **岗位核心内容**：
      - 简要介绍用户当前的工作背景和主要职责。
      -## 限制条件：
      - 内容控制在100字内
      - 专注于工作内容的分析和优化，不涉及与工作无直接关联的问题。
      - 严格遵循用户提供的原始信息进行编写，不得随意更改或增添任何内容。
      - 保持客观中立，避免任何形式的偏见或主观判断。
      - 输出文本型格式不使用markdown格式`
        
      AI.hunyuan("hunyuan-t1-latest",systemPrompt,userInput).then(result => {
        // console.log("AI生成的结果:", result);
        wx.hideLoading();
        this.setData({
          text: result.replace(/^[\s]+/, ""),
          visible:true
        })
      })
        .catch(error => {
          wx.hideLoading();
          wx.showToast({
            title: '调用AI失败',
            icon: 'error'
          })
      });
  },

  updateWorkExperience(){
    wx.showLoading({
      title: '',
    });
    DB.update('updateWorkExperience', this.data.form).then(() => {
          wx.hideLoading();
          wx.reLaunch({
            url: `/pages/createResume/index`,
          });
        }).catch(() => {
          wx.hideLoading();
          wx.showToast({
            title: '更新失败',
            icon: 'error',
            duration: 2000
          });
        });
  },

  addWorkExperience(){
    // console.log(this.data.openId)
    this.data.form.openId = this.data.openId
    // console.log(this.data.form)
    wx.showLoading({
      title: '',
    });
    DB.add('addWorkExperience', this.data.form).then(() => {
          wx.hideLoading();
          wx.reLaunch({
            url: `/pages/createResume/index`,
          });
        }).catch(() => {
          wx.hideLoading();
          wx.showToast({
            title: '添加失败',
            icon: 'error',
            duration: 2000
          });
        });
    
  },

  selectWorkExperience(id) {
    DB.select('selectWorkExperience', id).then((resp) => {
          
          this.setData({
            form: resp.result.data,
            count: 1
          });
          wx.hideLoading();
        }).catch(() => {
          console.log(e);
          this.setData({
            showUploadTip: true
          });
          wx.hideLoading();
        });
   
  },

  deleteWorkExperience(){
    wx.showLoading({
      title: '',
    });
    DB.delete('deleteWorkExperience', this.data.form).then(() => {
          wx.hideLoading();
          wx.reLaunch({
            url: `/pages/createResume/index`,
          });
        }).catch(() => {
          wx.hideLoading();
          wx.showToast({
            title: '删除失败',
            icon: 'error',
            duration: 2000
          });
        });

  },
  handleChange(e) {
    if(e.detail.value){
      this.setData({
        'form.resignText': '至今',
      });
    }
    this.setData({
      defaultVal: e.detail.value,
    });
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
     this.setData({
      openId: wx.getStorageSync("openId")
    })
    if(options.id != 'undefined'){
      wx.showLoading({
        title: '数据加载中...', // 这里设置提示词
        mask: true // 显示透明蒙层
      });
      this.selectWorkExperience(options.id)
    }
    // console.log(this.data.count)
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  // onShareAppMessage() {

  // }
})